public class CSDN {
    public static void main(String[] args) {
        Thread t = new Thread(() -> {

            while (!Thread.currentThread().isInterrupted()) {
                System.out.println("hello thread");
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    // e.printStackTrace();

                    // [方式一] 立即结束线程
                    break;

                    // [方式二] 啥都不做, 不做理会. 线程继续执行

                    // [方式三] 线程稍后处理
                    // Thread.sleep(1000);
                    // break;
                }
            }
            System.out.println("t 线程执行完了");
        });

        t.start();

        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        t.interrupt();
        System.out.println("设置让 t 线程结束!");
    }


}


//class MyThread extends Thread{
//    @Override
//    public void run() {
//        System.out.println("hello Thread");
//    }
//}
//
//
//public class CSDN {
//    public static void main(String[] args) {
//        MyThread myThread = new MyThread();
//        //myThread.start();
//        myThread.run();
//    }
//}
//    public static void main(String[] args) {
//        Thread1 thread1 = new Thread1();
//        thread1.Try();
//        Thread2 thread2 = new Thread2();
//        thread2.Try();


//        Thread thread = new Thread() {
//            @Override
//            public void run() {
//                System.out.println("匿名内部类创建Thread子类对象");
//                ;
//            }
//        };
//        thread.start();
//        Thread thread = new Thread(new Runnable() {
//            @Override
//            public void run() {
//                System.out.println("匿名内部类创建Runnable子类对象");
//            }
//        });
//        thread.start();
//    }


//    //创建一个自定义的线程类并继承标准库中的Thread类：
//class MyThread extends Thread{
//    @Override
//    //重写父类的run方法
//    public void run() {
//        System.out.println("这是继承Thread类创建的线程");
//    }
//}
//class Thread1 {
//    public  void Try() {
//        //创建实例
//        MyThread thread = new MyThread();
//
//        //调用start方法后才会在系统上创建一个线程
//        thread.start();
//    }
//}
//class MyThread2 implements Runnable{
//    @Override
//    public void run() {
//        System.out.println("这是实现Runnable接口创建的线程");
//    }
//}
//class Thread2 {
//    public  void Try() {
//        Runnable runnable = new MyThread2();
//        //需要将Runnable实例作为Thread构造方法的参数
//        Thread thread = new Thread(runnable);
//        thread.start();
//    }
//}
//    public static void main(String[] args) {
//                    Thread thread1 = new Thread(() -> {
//                        while (true) {
//                            System.out.println(Thread.currentThread().getName());
//                            try {
//                                Thread.sleep(1100);
//                            } catch (InterruptedException e) {
//                                e.printStackTrace();
//                            }
//                        }
//                    }, "这是一个自定义的线程");
//
//                    Thread thread2 = new Thread(() -> {
//                        while (true) {
//                            System.out.println("hello world");
//                            try {
//                                Thread.sleep(1100);
//                            } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
//            }
//        });
//
//        thread1.start();
//        thread2.start();
//    }
